关于MyBatis |
您所在的位置:网站首页 › mybatisplus or查询如何用括号包起来 › 关于MyBatis |
文章目录
前言一、问题描述二、解决步骤1.声明对QueryWrapper对象的编辑方法2.调用方法
总结
前言
MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。它提供了QueryWrapper自定义查询对象,可以无需手写sql,进行条件查询。在其中的and()和or()方法,可以进行条件的连接。 一、问题描述需要生成的搜索条件带多层and/or,且要在循环中处理,没法一次处理完成。 二、解决步骤 1.声明对QueryWrapper对象的编辑方法代码如下(示例): /** * 生成筛选条件 */ public static void createQW(QueryWrapper qw, JSONArray devList) { // 循环体,采用递归也可 for (int i = 0; i qw1.eq("deviceid", deviceid).eq("devtype", devtype)); } else { qw.or(qw1 -> qw1.eq("deviceid", deviceid).eq("devtype", devtype)); } } } 2.调用方法代码如下(示例): JSONArray devList = postJb.getJSONObject("dev_list").getJSONArray("valuelist"); QueryWrapper deviceQW = new QueryWrapper(); deviceQW.eq("del_flag", WeChatDeviceUtil.DEL_FLAG_NORMAL); // 调用方法,在and中嵌套了一层 deviceQW.and(qw -> createQW(qw, devList)); List devices = weChatDeviceMapper.selectList(deviceQW); 总结对queryMapper处理的lamda表达式中可以调用自定义的方法,在里面进行多层sql的处理 引用: 关于MybatisPlus的QueryWrapper定义查询条件的and()和or()方法连用问题https://blog.csdn.net/qq_42846022/article/details/105191967 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |